package com.trevorhalvorson.devjobs.fragment; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ProgressBar; import com.trevorhalvorson.devjobs.R; public class JobWebViewFragment extends Fragment { private static final String ARG_URL_KEY = "url_key"; public static JobWebViewFragment newInstance(String url) { Bundle args = new Bundle(); args.putString(ARG_URL_KEY, url); JobWebViewFragment fragment = new JobWebViewFragment(); fragment.setArguments(args); return fragment; } private ProgressBar mProgressBar; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_job_web_view, container, false); Toolbar toolbar = (Toolbar) rootView.findViewById(R.id.web_toolbar); mProgressBar = (ProgressBar) rootView.findViewById(R.id.web_view_progress_bar); mProgressBar.setMax(100); AppCompatActivity activity = (AppCompatActivity) getActivity(); activity.setSupportActionBar(toolbar); activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true); activity.getSupportActionBar().setHomeButtonEnabled(true); activity.getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true); activity.getSupportActionBar().setTitle(R.string.app_name); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getActivity().onBackPressed(); } }); WebView webView = (WebView) rootView.findViewById(R.id.web_view); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setLoadWithOverviewMode(true); webView.getSettings().setUseWideViewPort(true); webView.getSettings().setBuiltInZoomControls(true); webView.getSettings().setDisplayZoomControls(false); webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); webView.loadUrl(getArguments().getString(ARG_URL_KEY)); webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); webView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView webview, int newProgress) { if (newProgress == 100) { mProgressBar.setVisibility(View.GONE); } else { mProgressBar.setVisibility(View.VISIBLE); mProgressBar.setProgress(newProgress); } } public void onReceivedTitle(WebView webView, String title) { AppCompatActivity activity = (AppCompatActivity) getActivity(); activity.getSupportActionBar().setSubtitle(title); } }); webView.setWebViewClient(new WebViewClient() { public boolean shouldOverrideUrlLoading(WebView view, String url) { return false; } }); return rootView; } }